{"doc_urls":["introduction.html#Программа-для-отслеживания-обращений-граждан-и-создания-на-их-основе-постов","deploy.html#Инициализация-и-запуск-приложения","deploy.html#Общая-информация","deploy.html#Запуск-в-docker-контейнерах","deploy.html#Сборка-приложения-из-исходного-кода-программы-и-запуск-в-docker-контейнерах","mail/mail_extractor.html#Отслеживание-и-извлечение-почтовых-сообщений","mail/mail_settings.html#Добавление-и-удаление-почты-для-отслеживания","mail/mail_extractor.html#Отслеживание-и-извлечение-почтовых-сообщений","mail/attache_mail_extractor.html#Извлечение-файлов-из-почтовых-сообщений","mail/geo_extractor.html#Извлечение-геолокации-из-писем","mail/geo_extractor.html#Координаты-в-тексте","mail/geo_extractor.html#Координаты-в-фотографии","mail/mail_find.html#ФильтрацияПоиск-писем","mail/mail_label.html#Метки-к-письму","appeal/intro_to_appeal.html#Работа-с-обращениями","appeal/mail_to_appeal.html#Создание-обращения-из-почтового-письма","appeal/add_comment.html#Добавление-комментария-к-обращению","appeal/move_appeal.html#Перемещение-обращения-между-колонками-статусамисостояниями","appeal/add_col_kanban.html#Добавление-новых-колонок-в-раздел-Обращения-и-изменение-порядка","post/appeal_to_post.html#Создание-поста-из-обращения","post/appeal_to_post.html#Создание-поста-из-обращения","mail/mailing_label_template.html#Настройки-шаблонов-постов","post/to_to.html#Быстрый-переход-от-обращения-к-посту-и-обратно","post/post_find.html#ФильтрацияПоиск-постов","post/post_label.html#Метки-к-посту","post/new_attach_for_post.html#Редактор-добавить-новый-файл-вложения","post/post_attach.html#Редактор-добавить-видео-из-вложения","post/edit_title_post.html#Редактор-редактировать-заголовок-поста","post/edit_date_post.html#Редактор-редактировать-даты-начала-и-окончания-публикации","public_post.html#Опубликованные-посты","public_post.html#Публикация-постов","public_post.html#Просмотр-постов","public_post.html#Поиск-среди-опубликованных-постов","roadmap.html#Дорожная-карта-проекта"],"index":{"documentStore":{"docInfo":{"0":{"body":2,"breadcrumbs":0,"title":0},"1":{"body":0,"breadcrumbs":0,"title":0},"10":{"body":1,"breadcrumbs":0,"title":0},"11":{"body":1,"breadcrumbs":0,"title":0},"12":{"body":2,"breadcrumbs":0,"title":0},"13":{"body":1,"breadcrumbs":0,"title":0},"14":{"body":0,"breadcrumbs":0,"title":0},"15":{"body":1,"breadcrumbs":0,"title":0},"16":{"body":1,"breadcrumbs":0,"title":0},"17":{"body":2,"breadcrumbs":0,"title":0},"18":{"body":3,"breadcrumbs":0,"title":0},"19":{"body":1,"breadcrumbs":0,"title":0},"2":{"body":19,"breadcrumbs":0,"title":0},"20":{"body":1,"breadcrumbs":0,"title":0},"21":{"body":1,"breadcrumbs":0,"title":0},"22":{"body":1,"breadcrumbs":0,"title":0},"23":{"body":0,"breadcrumbs":0,"title":0},"24":{"body":1,"breadcrumbs":0,"title":0},"25":{"body":2,"breadcrumbs":0,"title":0},"26":{"body":1,"breadcrumbs":0,"title":0},"27":{"body":3,"breadcrumbs":0,"title":0},"28":{"body":1,"breadcrumbs":0,"title":0},"29":{"body":0,"breadcrumbs":0,"title":0},"3":{"body":39,"breadcrumbs":1,"title":1},"30":{"body":1,"breadcrumbs":0,"title":0},"31":{"body":2,"breadcrumbs":0,"title":0},"32":{"body":1,"breadcrumbs":0,"title":0},"33":{"body":7,"breadcrumbs":0,"title":0},"4":{"body":14,"breadcrumbs":1,"title":1},"5":{"body":3,"breadcrumbs":0,"title":0},"6":{"body":9,"breadcrumbs":0,"title":0},"7":{"body":3,"breadcrumbs":0,"title":0},"8":{"body":5,"breadcrumbs":0,"title":0},"9":{"body":0,"breadcrumbs":0,"title":0}},"docs":{"0":{"body":"Описание программы: Программа предназначена для работы с обращениями граждан поступающих через почту. Для отслеживания работы с обращениями используется парадигма, известная как канбан - метод управления проектами. Программа отслеживает почтовые сообщения с разных адресов по протоколу IMAP с последующим сохранением вложенных в письмо файлов и текста. На основе каждого из писем, программа позволяет создать новые обращения или добавлять письма к уже существующим обращениям. В программе реализована функциональность по созданию публично доступных постов с возможностью их редактирования. Посты создаются на основе обращений и являются связанными. Все почтовые сообщения и посты являются связанными с обращениями, что позволяет выполнить быструю навигацию между ними. Функциональные особенности приложения: работа с несколькими почтовыми адресами (ящиками). связь между почтовым сообщением, постом и обращениями. создание меток этапов работы с обращениями и возможность перемещать обращение с этапа на этап. WYSIWYG - редактор для постов. Извлечение геолокации из текста почтового сообщения. Извлечение геолокации из фотографий приложенных к почтовому сообщению. Поиск почтовых сообщений и постов по геолокации.","breadcrumbs":"Введение » Программа для отслеживания обращений граждан и создания на их основе постов.","id":"0","title":"Программа для отслеживания обращений граждан и создания на их основе постов."},"1":{"body":"","breadcrumbs":"Инициализация и запуск приложения » Инициализация и запуск приложения","id":"1","title":"Инициализация и запуск приложения"},"10":{"body":"geo_text.gif Порядок действий на видео: заходим в почту, создаем новое письмо в тексте которого указываем кооржинаты; отправляем письмо; проверяем отобразилось ли письмо в программе (в левой навигационной панели); для просмотра щелкаем по карточке письма и его содержимое будет отображено в правой-рабочей области; над областью с текстом по центру находится выпадающий список с перечнем зарегистрированных локаций; при щелчке ЛКМ по элементу из списка будет открыто новое окно с картой.","breadcrumbs":"Работа с почтовыми сообщениями » Извлечение геолокации из писем » Координаты в тексте","id":"10","title":"Координаты в тексте"},"11":{"body":"geo_attach.gif Порядок действий на видео: заходим в почту, создаем новое письмо и прикрепляем файл в котором хранится информация о координатах; отправляем письмо; проверяем отобразилось ли письмо в программе (в левой навигационной панели); для просмотра щелкаем по карточке письма и его содержимое будет отображено в правой-рабочей области; над областью с текстом по центру находится выпадающий список с перечнем зарегистрированных локаций; при щелчке ЛКМ по элементу из списка будет открыто новое окно с картой.","breadcrumbs":"Работа с почтовыми сообщениями » Извлечение геолокации из писем » Координаты в фотографии","id":"11","title":"Координаты в фотографии"},"12":{"body":"Все письма располагаются списком в левой части. По умолчанию список содержит 25 последних писем удовлетворяющих условиям фильтра/поиска. В конце списка располагается кнопка \"Больше писем\", которая проверит есть ли еще письма в БД и добавит их в конец списка. Доступна фильтрация по дате создания письма: за все время; за сегодня; за вчера; за неделю; за месяц. Поиск работает по теме письма или по локации письма. Можно указать город (улицу, район) и если у письма есть геометка с этим городом, то оно покажется в списке. mail_find.gif","breadcrumbs":"Работа с почтовыми сообщениями » Фильтрация/Поиск писем » Фильтрация/Поиск писем","id":"12","title":"Фильтрация/Поиск писем"},"13":{"body":"К каждому письму можно назначить несколько меток. mail_label.gif Порядок действий на видео: над областью с текстом письма слева находится выпадающий список с перечнем доступных меток для письма; при выборе или отмены выбора изменения автоматически сохранятся в БД.","breadcrumbs":"Работа с почтовыми сообщениями » Работа с метками к письму » Метки к письму","id":"13","title":"Метки к письму"},"14":{"body":"Каждое входящие сообщение может послужить основой для создания нового обращения или может быть добавлено к уже существующему обращению. Работа с обращениями организована процесс разбитый на этапы. Количество и порядок этапов работы с обращениями настраивается в разделе настроек. Минимально допустимое количество этапов - два и они уже созданы по умолчанию и не могут быть удалены. Перенос обращения с этапа на этап осуществляется путем перетаскивания обращения из одной колонки этапа в другую.","breadcrumbs":"Работа с обращениями » Работа с обращениями","id":"14","title":"Работа с обращениями"},"15":{"body":"На основе каждого письма можно создать обращение. Также письмо можно привязать уже к созданному обращению. mail_label.gif Порядок действий на видео: Перейдите в раздел Входящие и в списке не обработанных новых сообщений выберите интересующее вас сообщение. При выборе сообщения в списке будет показано содержимое письма. В нижней части будут располагаться элементы управления при помощи которых можно или удалить письмо, или создать на его основе обращение. При выборе Отправить в обращения (или введя номер и нажав Связать с обращением) письмо будет преобразовано в новое обращение. Далее доступ к содержимому письма можно будет получить из карточки обращения. Для быстрого перехода к карточке обращения можно воспользоваться кнопкой `` расположенной в правом верхнем углу окна с письмом.","breadcrumbs":"Работа с обращениями » Создание обращения из почтового письма » Создание обращения из почтового письма","id":"15","title":"Создание обращения из почтового письма"},"16":{"body":"К каждому обращению можно добавлять комментарии. Комментарии - это некоторый текст привязанный ко времени и к обращению. Через комментарии можно оставлять важные пометки и напоминания связанные с этим обращением. mail_label.gif Порядок действий на видео: Перейдите в раздел Обращения. Каждое обращение показывается в виде карточки. Карточки распределены между колонок в зависимости от текущего статуса (состояния) обращения. В правом нижнем углу карточки показано количество комментариев к ней. При выборе карточки будет открыто модальное окно с содержимым карточки обращения. В нижней части окна с содержимым обращения расположена строка ввода комментариев.","breadcrumbs":"Работа с обращениями » Добавление комментария к обращению » Добавление комментария к обращению","id":"16","title":"Добавление комментария к обращению"},"17":{"body":"Работа с обращениями ведется с использованием методики kanban. Изменение состояния работы с обращениями можно выполнить путем переноса карточки обращения из одной в другую колонки. При перемещении карточки с одной колонки в другую будет добавлен новый комментарий. mail_label.gif Порядок действий на видео: Перейдите в раздел Обращения. Каждое обращение показывается в виде карточки. Все новые обращения создаются в первой колонке с названием Обращения. Если зажать ЛКМ над карточкой и выполнить перенос ее из одной колонки в другую и отжать ЛКМ, то будет выполнен перенос обращения в новое состояние.","breadcrumbs":"Работа с обращениями » Перемещение обращения между колонками (статусами/состояниями) » Перемещение обращения между колонками (статусами/состояниями)","id":"17","title":"Перемещение обращения между колонками (статусами/состояниями)"},"18":{"body":"new_col_kanban.gif Для добавления новых колонок в раздел \"Обращения\" или изменения их порядка необходимо перейти в раздел Настройки. Панель настроек разделена на две части: вертикальная панель навигации и область настроек. img.png В вертикальной панели навигации необходимо выбрать пункт Обращения, при этом в области настроек должны отобразиться настройки почты. Первым разделом настроек обращений является раздел содержащий Категории состояний работы с обращением. Если ранее еще не были добавлены новые категории, то список будет состоять из двух категорий: Обращения и Исполнено. Для добавления новой категории необходимо нажать на кнопку Новоя категория, после чего будет отрыто модальное окно с формой ввода: Название категории Описание категории img.png При работе с категориями доступна возможность изменять их порядок, редактировать заглавие и описания, а также их удаление. Примечание: Программа запрещает удалять категории в которых в настоящий момент времени есть обращения.","breadcrumbs":"Работа с обращениями » Добавление новых колонок в раздел \"Обращения\" и изменение порядка » Добавление новых колонок в раздел \"Обращения\" и изменение порядка","id":"18","title":"Добавление новых колонок в раздел \"Обращения\" и изменение порядка"},"19":{"body":"На основе содержимого обращений можно быстро создать пост. post_attach_mail.gif Если для обращения еще не создан (привязан) ни один пост, то в правой части обращения будет находиться кнопка с текстом Постов нет, при наведении на которую будет раскрыт список с кнопкой Создать пост. При успешном создании поста, кнопка с текстом Постов нет будет заменена на кнопку с текстом указывающим на количество постов связанных с обращением. Между постом и обращением будет связь, позволяющая выполнить быстрый переход.","breadcrumbs":"Работа с постами » Создание поста из обращения","id":"19","title":"Создание поста из обращения"},"2":{"body":"Приложение написано с использованием языка программирования Rust (Actix Web) и требует выполнить компиляцию приложения. Для работы приложения также требуется база данных PostgreSQL и обратный прокси сервер (например Traefik). Для удобства развертывания приложения предлагается использовать Docker контейнеры. Структура приложения с использованием Docker контейнеров следующая: db_server - Сервер баз данных. Используется PostgreSQL. db-backup_db_server - Содержит скрип выполнения резервных копий базы данных. Скрипт хранит копии за сегодня, 7 дней, 4 недели, 12 месяцев. backend_workers_imap - Сервис по отслеживанию сообщений на почте. backend_ssr - Сервис с пользовательским Web интерфейсом. proxy - Обратный прокси сервер. Используется Traefik.","breadcrumbs":"Инициализация и запуск приложения » Общая информация","id":"2","title":"Общая информация"},"20":{"body":"На основе содержимого обращений можно быстро создать пост. post_attach_mail.gif Если для обращения еще не создан (привязан) ни один пост, то в правой части обращения будет находиться кнопка с текстом Постов нет, при наведении на которую будет раскрыт список с кнопкой Создать пост. При успешном создании поста, кнопка с текстом Постов нет будет заменена на кнопку с текстом указывающим на количество постов связанных с обращением. Между постом и обращением будет связь, позволяющая выполнить быстрый переход.","breadcrumbs":"Работа с постами » Создание поста из обращения » Создание поста из обращения","id":"20","title":"Создание поста из обращения"},"21":{"body":"Для каждого входящего почтового сообщения можно назначить одну или более почтовых меток. При создании поста из почтового сообщения для которого выбрана одна и более меток, при формировании текста поста будет подставлен соответсвующий шаблон. Для редактирования шаблонов постов привязанных к меткам, необходимо перейти в раздел Настройки. Панель настроек разделена на две части: вертикальная панель навигации и область настроек. В вертикальной панели навигации необходимо выбрать пункт Посты, при этом в области настроек должны отобразиться настройки почты. Редактирование шаблонов выполняется в разделе Шаблоны постов для меток писем. img.png В левой части содержится список меток почты. При выборе нужной метке в правой части появится поле для редактирования.","breadcrumbs":"Работа с постами » Настройки шаблонов постов » Настройки шаблонов постов","id":"21","title":"Настройки шаблонов постов"},"22":{"body":"Если пост был создан из обращения, то между ними образуется связь, позволяющая выполнять быстрый переход от обращения к посту на эту тему. to_to.gif","breadcrumbs":"Работа с постами » Быстрый переход от обращения к посту и обратно » Быстрый переход от обращения к посту и обратно","id":"22","title":"Быстрый переход от обращения к посту и обратно"},"23":{"body":"Поиск постов в левой панели работает аналогично поиску писем. Если пост был создан от письма у которого присутствовали геометки, то при выполнении поиска по постам, можно также искать по названию городов и улиц.","breadcrumbs":"Работа с постами » Фильтрация/Поиск постов » Фильтрация/Поиск постов","id":"23","title":"Фильтрация/Поиск постов"},"24":{"body":"Аналогично как с письмами, для постов можно назначать метки. Стоит отметить, что метки писем и метки постов - это разные метки. post_label.gif Порядок действий на видео: над областью с текстом письма слева находится выпадающий список с перечнем доступных меток для поста; при выборе или отмены выбора изменения автоматически сохранятся в БД.","breadcrumbs":"Работа с постами » Метки к посту » Метки к посту","id":"24","title":"Метки к посту"},"25":{"body":"Для поста можно добавить новый файл вложения, который после можно использовать при редактировании текста поста. Все приложенные файлы будут связанны с постом, что позволит держать их всегда под рукой. Для добавления нового файла вложения необходимо нажать кнопку Прикрепить и в открывшемся окне выбрать файл, который вы хотите прикрепить. Ограничение: Размер файла не должен превышать 25 Мб. new_attachment_for_post.gif","breadcrumbs":"Работа с постами » Редактор: добавить новый файл вложения » Редактор: добавить новый файл вложения","id":"25","title":"Редактор: добавить новый файл вложения"},"26":{"body":"Редактор постов позволяет добавлять видео ролики и картинки к тексту. Справа от области редактирования текста располагается блок с вложениями. Вложения делятся на два вида: вложения поста; вложения писем от которых был создан пост. Для добавления видео в текст необходимо зажать ЛКМ над изображением файла и перетянуть его в область редактирования текста, не отпуская ЛКМ до момента попадания курсора в область редактирования текста. post_attach_mail.gif","breadcrumbs":"Работа с постами » Редактор: добавить видео из вложения » Редактор: добавить видео из вложения","id":"26","title":"Редактор: добавить видео из вложения"},"27":{"body":"Заголовок поста задается отдельно от текста поста. В верхней части редактора присутствует поле для ввода текста. Запрещается оставлять строку заголовка пустой, использовать более 256 символов или использовать запрещенные символы. Все изменения происходят автоматически (задержка 1 сек). Если изменения были сохранены в БД, то поле будет подсвечено зеленым цветом. Иначе - красным. edit_title_post.gif","breadcrumbs":"Работа с постами » Редактор: редактировать заголовок поста » Редактор: редактировать заголовок поста","id":"27","title":"Редактор: редактировать заголовок поста"},"28":{"body":"Каждый созданный пост не является опубликованным. Для его публикации необходимо выбрать дату начала публикации. Функциональные элементы отвечающие за задание даты начала публикации располагаются в нижней части редактора. Также, у поста может быть задана дата окончания публикации. Если дата окончания не выбрана, то пост считается бессрочным. Все изменения автоматически сохраняются в БД. edit_title_post.gif","breadcrumbs":"Работа с постами » Редактор: редактировать даты начала и окончания публикации » Редактор: редактировать даты начала и окончания публикации","id":"28","title":"Редактор: редактировать даты начала и окончания публикации"},"29":{"body":"","breadcrumbs":"Опубликованные посты » Опубликованные посты","id":"29","title":"Опубликованные посты"},"3":{"body":"Копирование папки dist Скомпилированное приложение в виде бинарных файлов содержится в папке dist. В этой папке также содержатся все необходимые конфигурационные файлы для запуска приложения, включая файл docker-compose.dist.yml. В нем описывается запуск всех необходимых для работы контейнеров. Настройка переменных окружения При Запуске приложения в docker контейнере, предлагается в корне проекта создать файл .env со следующими ключами: # Уровень регистрации сообщений приложения (debug, info, error).\nLOG_LEVEL=info\n#\n# =============================\n# Настройки сервера базы данных и доступа к ней.\n# =============================\n# # Имя суперпользователя.\nPOSTGRES_USER=\n# Пароль суперпользователя.\nPOSTGRES_PASSWORD=\n# Наименование (хост имя) базы данных (Должно соответсвовать наименованию docker контейнера).\nPOSTGRES_SERVER=\n#\n# =============================\n# Настройки доступа к базе данных для приложения.\n# =============================\n#\n# Имя пользователя БД, под которым будет выполнять подключчение к БД приложение.\nUSER_POSTGRES_USER=\n# Пароль пользователя БД, под которым будет выполнять подключчение к БД приложение.\nUSER_POSTGRES_PASSWORD=\n# Наименование базы данных в сервере баз данных.\nUSER_POSTGRES_DB=\n#\n# =============================\n# Настройки дирректории хранения файлов.\n# =============================\n#\n# Путь к дирректории в которой должны храниться файлы загружаемые через сервисы.\nPATH_TO_FILE_STORE=/usr/local/share/file_store\n#\n# =============================\n# Настройки SSR (Web интерфейса)\n# =============================\n#\n# Доменное имя по которому усуществляется доступ к приложению.\nDOMAIN=\n# Имя пользователя для Базовой аутентификации к административной(не публичной) части интерфейса.\nADMIN_BACKEND_SSR_AUTH_USER=\n# Пароль пользователя для Базовой аутентификации к административной(не публичной) части интерфейса.\n# пароль должен быть хеширован с использованием MD5, SHA1 или BCrypt.\nADMIN_BACKEND_SSR_AUTH_PASS=\n# Адрес почты для получения сертификата от let's encrypt EMAIL_CERTIFICATESRESOLVERS= Запуск приложения В корне папки dist находится ./command.dist.sh файл в котором описана скрипты запуска и остановки приложения: start - Команда запуска приложения. Если ранее не была выполнена сборка docker образов, то перед запуском будет выполнена сборка. stop - Выполнение команды остановит приложение. build - Команда сборки docker образов. restart - Перезапуск приложения. Пример: Для старта приложения необходимо выполнить команду ./command.dist.sh start","breadcrumbs":"Инициализация и запуск приложения » Запуск в Docker контейнерах.","id":"3","title":"Запуск в Docker контейнерах."},"30":{"body":"Все опубликованные посты становятся публично доступными в витрине постов. publication_start_post.gif","breadcrumbs":"Опубликованные посты » Публикация постов","id":"30","title":"Публикация постов"},"31":{"body":"На одну страницу помещается не более 25 постов. Внизу страницы имеются кнопки вперед и назад для перелистывания страниц. Каждый опубликованный пост имеет две формы отображения: краткую и полную. В краткой форме пост представлен в виде карточки состоящей из двух частей: левой и правой. Слева располагается медиа контент из поста. Если в посте сразу несколько фотографий, то в левой части появляются стрелки прокрутки контента. Справа расположен текст поста, без медиа контента. Если текст очень длинный, то отображается лишь небольшая часть текста, а полное содержимое доступно в полной форме поста по ссылке по Посмотреть все. В полной форме поста текст и медиа контент в нем расположен в том виде, как его редактировал автор. view_post.gif","breadcrumbs":"Опубликованные посты » Просмотр постов","id":"31","title":"Просмотр постов"},"32":{"body":"Параметры поиска: Период публикации - За сегодня, за вчера, за неделю, за месяц, за все время (по умолчанию) По категориям - По умолчанию в фильтре отмечены все категории постов, но пользователь может самостоятельно отметить наиболее интересующие его категории. По заголовку или месту (геометки) - Если к посту указана геометка, то можно выполнить поиск по локации (название города, региона, название улицы). filter_view_post.gif На анимации выше можно видеть как в разделе фильтра в поле ввода текста вводится город Екатеринбург. Так как Пост с картинкой был создан из письма с геометкой, то он (пост) унаследовал эту геометку. Теперь пост можно найти по названию города или улицы.","breadcrumbs":"Опубликованные посты » Поиск среди опубликованных постов","id":"32","title":"Поиск среди опубликованных постов"},"33":{"body":"Добавить возможность создания поста без привязки к почтовому сообщению. Необходимо добавить генерацию RSS. Одним из источников размещения постов является площадка dzen.ru. Данная площадка, помимо ручного добавление статей, позволяет автоматически \"подхватывать\" статьи из RSS. RSS разметка должна соответствовать требованиям dzen.ru. Групповая публикация постов Необходимо добавить возможность выбирать сразу несколько постов и выполнить групповую публикацию. Также, так как предусмотрена отложенная публикация, то можно сделать групповую отложенную публикацию с распределением по времени. Создание поста из нескольких сообщений, а не из одного Сейчас работает правило \"одно сообщение - один пост\". Однако, в реальности может потребоваться объединить несколько сообщений в один пост. Для этого нужно будет выделить несколько сообщений и в меню действий выбрать пункт \"Создать пост\". Удаление сообщений Необходимо добавить возможность скрывать не релевантные сообщения (удалять их), что бы они не \"захламляли\" список сообщений. Авто генерацию текста поста с использованием GigaChat Тут потребуется платный доступ, так как \"хороший\" промт может занимать много токенов. Если это возможно, то наладить автопубликацию в новый сайт НК (тот что на WordPress) Добавить фирменной стилистики","breadcrumbs":"Дорожная карта » Дорожная карта проекта","id":"33","title":"Дорожная карта проекта"},"4":{"body":"Запуск приложения из исходного кода аналогичен запуску готового приложения, но требует наличие папки с исходным текстом программ. Внимание. Сборка проекта из исходного кода может потребованить значительное время и навыки работы с языком программирования Rust. Так как сборка выполняется внутри docker контейнера, нет необходимости на хостовой машине устанавливать инструменты разработчика и компилятор Rust. Копирование исходного текста программы Для начала, необходимо скопировать исходный текст программы в выбранную вами директорию. Настройка переменных окружения При сборке и запуске приложения в docker контейнере, предлагается в корне проекта создать файл .env. Содержание фала с параметрами окружения аналогично описанному выше. Сборка и запуск приложения В корне проекта находится ./command.sh файл в котором описана скрипты запуска и остановки приложения: start - Команда запуска приложения. Если ранее не была выполнена сборка docker образов, то перед запуском будет выполнена сборка. stop - Выполнение команды остановит приложение. build - Команда сборки docker образов. restart - Перезапуск приложения. Прежде чем приступать к запуску приложения, необходимо выполнить настройку приманных окружения, необходимых для работы приложения. Для старта приложения необходимо выполнить команду ./command.sh start","breadcrumbs":"Инициализация и запуск приложения » Сборка приложения из исходного кода программы и запуск в Docker контейнерах.","id":"4","title":"Сборка приложения из исходного кода программы и запуск в Docker контейнерах."},"5":{"body":"Приложение позволяет работать с почтовыми ящиками через протокол IMAP . Количество почтовых ящиков (пока что) не ограничено. Можно подключать сразу несколько почтовых ящиков. Все сообщения отправленные на почту в раздел Входищие (INBOX) будут зарегистрированы приложением и сохранены в БД. send_mail.gif Порядок действий на видео: заходим в почту, создаем новое письмо и вводим текст; отправляем письмо; проверяем отобразилось ли письмо в программе (в левой навигационной панели); для просмотра щелкаем по карточке письма и его содержимое будет отображено в правой-рабочей области.","breadcrumbs":"Работа с почтовыми сообщениями » Отслеживание и извлечение почтовых сообщений","id":"5","title":"Отслеживание и извлечение почтовых сообщений"},"6":{"body":"Для добавления новой почты к отслеживанию необходимо перейти в раздел Настройки. Панель настроек разделена на две части: вертикальная панель навигации и область настроек. img.png В вертикальной панели навигации необходимо выбрать пункт Почта, при этом в области настроек должны отобразиться настройки почты. Первым разделом настроек почты является раздел содержащий Список отслеживаемых почтовых ящиков. Если ранее еще не были добавлены почтовые адреса для отслеживания, то список будет пустым. Для добавления нового адреса необходимо нажать на кнопку Добавить почтовый ящик, после чего будет отрыто модальное окно с формой ввода: Адрес почтового сервера (IMAP) пример: imap.yandex.ru Порт (IMAP) пример: 993 Адрес почты пример: mybeautifulmail@yandex.ru Пароль или ключ доступа img.png После добавления почты в список отслеживаемых, все письма с постового сервера будут дублироваться в приложении. img.png Примечание: По умолчанию отслеживаются только письма из папки INBOX (Входящие)","breadcrumbs":"Работа с почтовыми сообщениями » Добавление и удаление почты для отслеживания » Добавление и удаление почты для отслеживания","id":"6","title":"Добавление и удаление почты для отслеживания"},"7":{"body":"Приложение позволяет работать с почтовыми ящиками через протокол IMAP . Количество почтовых ящиков (пока что) не ограничено. Можно подключать сразу несколько почтовых ящиков. Все сообщения отправленные на почту в раздел Входищие (INBOX) будут зарегистрированы приложением и сохранены в БД. send_mail.gif Порядок действий на видео: заходим в почту, создаем новое письмо и вводим текст; отправляем письмо; проверяем отобразилось ли письмо в программе (в левой навигационной панели); для просмотра щелкаем по карточке письма и его содержимое будет отображено в правой-рабочей области.","breadcrumbs":"Работа с почтовыми сообщениями » Отслеживание и извлечение почтовых сообщений » Отслеживание и извлечение почтовых сообщений","id":"7","title":"Отслеживание и извлечение почтовых сообщений"},"8":{"body":"Если к письму будут прикреплены файлы, то они будут выгружены и сохранены в указанной при настройке приложения папке. Сейчас поддерживается работа с файлами mp4, jpg, png и pdf. Другие форматы файлов игнорируются. attach.gif Порядок действий на видео: заходим в почту, создаем новое письма и прикрепляем файл; отправляем письмо; проверяем отобразилось ли письмо в программе (в левой навигационной панели); для просмотра щелкаем по карточке письма и его содержимое будет отображено в правой-рабочей области; под областью с текстом находится горизонтальный контейнер в котором содержатся файлы из письма; при щелчке ЛКМ по иконке файла будет открыто модальное окно с демонстрацией содержимого файла.","breadcrumbs":"Работа с почтовыми сообщениями » Извлечение файлов из почтовых сообщений » Извлечение файлов из почтовых сообщений","id":"8","title":"Извлечение файлов из почтовых сообщений"},"9":{"body":"Имеется два встроенных механизма фиксации геолокации: Если геолокация (широта и долгота) указана в тексте письма. Если геолокация записана в файле (например в файле фотографии). После извлечения координат из письма они записываются в БД. Также, выполняется попытка определения названия города, района, улицы, дома. Благодаря сохранению геолокации можно выполнять поиск писем по названию города, района, улицы, дома.","breadcrumbs":"Работа с почтовыми сообщениями » Извлечение геолокации из писем » Извлечение геолокации из писем","id":"9","title":"Извлечение геолокации из писем"}},"length":34,"save":true},"fields":["title","body","breadcrumbs"],"index":{"body":{"root":{"1":{"2":{"df":1,"docs":{"2":{"tf":1.0}}},"df":1,"docs":{"27":{"tf":1.0}}},"2":{"5":{"6":{"df":1,"docs":{"27":{"tf":1.0}}},"df":3,"docs":{"12":{"tf":1.0},"25":{"tf":1.0},"31":{"tf":1.0}}},"df":0,"docs":{}},"4":{"df":1,"docs":{"2":{"tf":1.0}}},"7":{"df":1,"docs":{"2":{"tf":1.0}}},"9":{"9":{"3":{"df":1,"docs":{"6":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"2":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"_":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"_":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"8":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"p":{"_":{"d":{"b":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"2":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"3":{"tf":1.0},"4":{"tf":1.0}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"d":{".":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"3":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"4":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{".":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"y":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":1,"docs":{"3":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"d":{"b":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}}}}}}},"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"3":{"tf":1.7320508075688772}}}}},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"2":{"tf":1.4142135623730951},"3":{"tf":2.449489742783178},"4":{"tf":2.23606797749979}}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"33":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":2,"docs":{"27":{"tf":1.0},"28":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"_":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"3":{"tf":1.0}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"n":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"df":0,"docs":{},"v":{"df":2,"docs":{"3":{"tf":1.0},"4":{"tf":1.0}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"32":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"_":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"11":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"g":{"a":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"33":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"y":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"6":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":4,"docs":{"0":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.4142135623730951},"7":{"tf":1.0}}}},"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"p":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"18":{"tf":1.4142135623730951},"21":{"tf":1.0},"6":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":3,"docs":{"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":1,"docs":{"3":{"tf":1.0}}}}}},"j":{"df":0,"docs":{},"p":{"df":0,"docs":{},"g":{"df":1,"docs":{"8":{"tf":1.0}}}}},"k":{"a":{"df":0,"docs":{},"n":{"b":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"g":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"=":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":4,"docs":{"13":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"d":{"5":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"4":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"y":{"b":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"@":{"df":0,"docs":{},"y":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"6":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"_":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"_":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"n":{"b":{"a":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"=":{"/":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"f":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"8":{"tf":1.0}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"_":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":3,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"26":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"_":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"3":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}}}}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"3":{"tf":1.0},"4":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"4":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"_":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":2,"docs":{"5":{"tf":1.0},"7":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"h":{"a":{"1":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"r":{"df":1,"docs":{"3":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"3":{"tf":1.4142135623730951},"4":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":2,"docs":{"3":{"tf":1.0},"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"22":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"_":{"d":{"b":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"31":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"w":{"df":0,"docs":{},"e":{"b":{"df":2,"docs":{"2":{"tf":1.4142135623730951},"3":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"33":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"w":{"df":0,"docs":{},"y":{"df":0,"docs":{},"g":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}}},"breadcrumbs":{"root":{"1":{"2":{"df":1,"docs":{"2":{"tf":1.0}}},"df":1,"docs":{"27":{"tf":1.0}}},"2":{"5":{"6":{"df":1,"docs":{"27":{"tf":1.0}}},"df":3,"docs":{"12":{"tf":1.0},"25":{"tf":1.0},"31":{"tf":1.0}}},"df":0,"docs":{}},"4":{"df":1,"docs":{"2":{"tf":1.0}}},"7":{"df":1,"docs":{"2":{"tf":1.0}}},"9":{"9":{"3":{"df":1,"docs":{"6":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":1,"docs":{"2":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"_":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"_":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"8":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"_":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"2":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"p":{"_":{"d":{"b":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"2":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"3":{"tf":1.0},"4":{"tf":1.0}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"d":{".":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"3":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"4":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{".":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"y":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":1,"docs":{"3":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"d":{"b":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"2":{"tf":1.0}}}}}}}}},"df":1,"docs":{"2":{"tf":1.0}}},"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"3":{"tf":1.7320508075688772}}}}},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"2":{"tf":1.4142135623730951},"3":{"tf":2.6457513110645907},"4":{"tf":2.449489742783178}}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"33":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":2,"docs":{"27":{"tf":1.0},"28":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"_":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"3":{"tf":1.0}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"n":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"df":0,"docs":{},"v":{"df":2,"docs":{"3":{"tf":1.0},"4":{"tf":1.0}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"32":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"_":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"11":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"10":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"g":{"a":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"33":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"y":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"6":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":4,"docs":{"0":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.4142135623730951},"7":{"tf":1.0}}}},"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"p":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"18":{"tf":1.4142135623730951},"21":{"tf":1.0},"6":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":3,"docs":{"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":1,"docs":{"3":{"tf":1.0}}}}}},"j":{"df":0,"docs":{},"p":{"df":0,"docs":{},"g":{"df":1,"docs":{"8":{"tf":1.0}}}}},"k":{"a":{"df":0,"docs":{},"n":{"b":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"g":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"=":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":4,"docs":{"13":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"d":{"5":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"4":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"y":{"b":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"@":{"df":0,"docs":{},"y":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":1,"docs":{"6":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"_":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"_":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"n":{"b":{"a":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"=":{"/":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"3":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"f":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"8":{"tf":1.0}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"_":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":3,"docs":{"19":{"tf":1.0},"20":{"tf":1.0},"26":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"_":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"3":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}}}}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":0,"docs":{},"i":{"df":1,"docs":{"2":{"tf":1.0}}}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"3":{"tf":1.0},"4":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"2":{"tf":1.0},"4":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"_":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":2,"docs":{"5":{"tf":1.0},"7":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"h":{"a":{"1":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"r":{"df":1,"docs":{"3":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"3":{"tf":1.4142135623730951},"4":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":2,"docs":{"3":{"tf":1.0},"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"o":{"_":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"22":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":1,"docs":{"2":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"_":{"d":{"b":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"3":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"3":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"_":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"31":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"w":{"df":0,"docs":{},"e":{"b":{"df":2,"docs":{"2":{"tf":1.4142135623730951},"3":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"33":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"w":{"df":0,"docs":{},"y":{"df":0,"docs":{},"g":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}}},"title":{"root":{"d":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"3":{"tf":1.0},"4":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"lang":"English","pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5"},"results_options":{"limit_results":30,"teaser_word_count":30},"search_options":{"bool":"OR","expand":true,"fields":{"body":{"boost":1},"breadcrumbs":{"boost":1},"title":{"boost":2}}}}